package ch02_data.generics.base;

import org.junit.Test;

import java.util.*;

/**
 * The class/interface
 * ①集合接口或类在JDK1.5时都修改为带泛型的结构；
 * ②在实例化集合类时，可以指明具体的泛型类型；
 * ③后面使用的方法都是实例化时的类型；
 * ④泛型类型必须是包装类型。int -> Integer
 *
 * @author guodd
 * @version 1.0 use jdk 1.8
 */
public class GenericUse {
    @Test
    public void listUse() {
        List<Integer> lists = new ArrayList<>();
        lists.add(1);
        lists.add(2);
        lists.add(3);
        lists.add(4);
        Iterator<Integer> iterator = lists.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }

    @Test
    public void mapUse() {
        Map<Integer, String> maps = new HashMap<>();
        maps.put(1, "aa");
        maps.put(2, "bb");
        maps.put(3, "cc");

        Set<Map.Entry<Integer, String>> entries = maps.entrySet();
        Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();

        for (Map.Entry<Integer, String> m : maps.entrySet()) {
            System.out.println(m.getKey() + "--" + m.getValue());
        }
    }
}
